Link to this headingElliptic-Curve Menezes-Qu-Vanstone (ECMQV)
https://en.wikipedia.org/wiki/MQV
https://asecuritysite.com/encryption/mvq
Link to this headingHow it works
- Alice generates a random number
xand uses it to make a Point (p1x, p1,y) on the Curve - Bob generates a random number
yand uses it to make a Point (p2x, p2,y) on the Curve - Alice calculates
X_hat = (p1x mod 2^((log_2(n) + 1)/2) - Bob calculates
Y_hat = (p1x mod 2^((log_2(n) + 1)/2)
Link to this headingImplementation
#Take the first L bits of the x Point and set the MSB
=
return +
=
= 1
#Generate KeyPair Alice
, =
#Generate Alice random Point
=
= *
#Generate KeyPair Bob
, =
#Generate Bob random Point
=
= *
#Generate Signatures
= %
= %
#Key Exchange
#Alice Side
#Ja = cofactor * alice_signature * (bob_random_point + bar(bob_random_point) * bob_public_key_point)
= +
= *
#Bob side
#Jb = cofactor * bob_signature * (alice_random_point + bar(alice_random_point) * alice_public_key_point)
= +
= *
assert ==
Link to this headingSecurity
Link to this headingUnknown key-share attack
It is also known as source-substitution or identity misbinding Attacks
If you have MITM then Eve can generate a shared key with bob even though it was meant for Alice